package com.ziyia.fragmentandviewpager2;

import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;
import androidx.annotation.NonNull;
import androidx.constraintlayout.widget.ConstraintLayout;
import androidx.recyclerview.widget.RecyclerView;
import org.jetbrains.annotations.NotNull;
import java.util.ArrayList;
import java.util.List;


public class MyAdapter extends RecyclerView.Adapter<MyAdapter.MyViewPager2> {
    // 每个页面的内容
    private List<String> list = new ArrayList<>();
    // 每个页面的颜色
    private List<Integer> colors = new ArrayList<>();

    // 创建对象时把信息添加到容器中
    public MyAdapter() {
        list.add("首页");
        list.add("管理");
        list.add("发现");
        list.add("个人中心");

        colors.add(R.color.green);
        colors.add(R.color.pink);
        colors.add(R.color.blue);
        colors.add(R.color.red);
    }

    /**
     * 创建适配器
     * @param parent
     * @param viewType
     * @return
     */
    @NonNull
    @NotNull
    @Override
    public MyViewPager2 onCreateViewHolder(@NonNull @NotNull ViewGroup parent, int viewType) {
        return new MyViewPager2(LayoutInflater.from(parent.getContext()).inflate(R.layout.item, parent, false));
    }

    /**
     * 为控制管理器中的控制设置内容
     * @param holder
     * @param position
     */
    @Override
    public void onBindViewHolder(@NonNull @NotNull MyAdapter.MyViewPager2 holder, int position) {
        holder.textView.setText(list.get(position));
        holder.bgr.setBackgroundResource(colors.get(position));
    }

    /**
     * 页面的个数
     * @return
     */
    @Override
    public int getItemCount() {
        return list.size();
    }

    /**
     * 页面控件管理器
     */
    class MyViewPager2 extends RecyclerView.ViewHolder {
        // 页面中的文本
        private TextView textView;
        // 页面中的布局
        private ConstraintLayout bgr;

        /**
         * 创建一个构造器来获取控件
         * @param itemView
         */
        public MyViewPager2(@NonNull @NotNull View itemView) {
            super(itemView);
            this.textView = itemView.findViewById(R.id.textView);
            this.bgr = itemView.findViewById(R.id.bgr);
        }
    }
}
